{% extends '::base.html.twig' %}
{% block title %} Homologar Petición de Homologación {% endblock %}

{% block greensectiontitle %}Petición de Homologación{% endblock %}

{% block greensectionbody %}
<form id="homologarForm" action="{{ path('peticionhomologacion_updateHomologar', { 'id': entity.id }) }}" method="post" {{ form_enctype(homologar_form) }}>
            {{ form_errors(homologar_form) }}
        
        <div>
            {{ form_label(homologar_form.numeroOficio,'Numero de Oficio') }} {{ form_widget(homologar_form.numeroOficio) }}
            <br/><br/>
            {{ form_label(homologar_form.estudiante.cedula,'Cedula') }} {{ form_widget(homologar_form.estudiante.cedula) }}
            <br/>
            {{ form_label(homologar_form.estudiante.pasaporte,'Pasaporte') }} {{ form_widget(homologar_form.estudiante.pasaporte) }}
            <br/>
            {{ form_label(homologar_form.estudiante.nombre,'Nombre') }} {{ form_widget(homologar_form.estudiante.nombre) }}
            <br/>
            {{ form_label(homologar_form.estudiante.apellido,'Apellido') }} {{ form_widget(homologar_form.estudiante.apellido) }}
            <br/>
            {{ form_label(homologar_form.carrera,'Carrera Origen') }}  
            {{ form_widget(homologar_form.carrera) }} {{ form_widget(homologar_form.carreraOrigen) }}
            <br/><br/>
            {{ form_label(homologar_form.mallaOrigen,'Malla Origen') }} {{ form_widget(homologar_form.mallaOrigen) }}  
            <br/><br/>
            {{ form_label(homologar_form.carreraDestino,'Carrera Destino') }} {{ form_widget(homologar_form.carreraDestino) }} 
            <br/><br/>
            {{ form_label(homologar_form.mallaDestino,'Malla Destino') }} {{ form_widget(homologar_form.mallaDestino) }}  
            <br/><br/>
            {{ form_label(homologar_form.tipoEscala,'Tipo de Escala') }} {{ form_widget(homologar_form.tipoEscala) }}
            <br/><br/>
            {{ form_label(homologar_form.escalaMinimaNumerica,'Escala Mìnim:') }} {{ form_widget(homologar_form.escalaMinimaNumerica) }}  {{ form_widget(homologar_form.escalaMinimaAlfanumerica) }}
            <br/><br/>
            {{ form_label(homologar_form.escalaMaximaNumerica,'Escala Màxima:') }} {{ form_widget(homologar_form.escalaMaximaNumerica) }}  {{ form_widget(homologar_form.escalaMaximaAlfanumerica) }}
            <br/><br/>
            {{ form_label(homologar_form.numeroModulo,'Numero de Modulo') }} {{ form_widget(homologar_form.numeroModulo) }}
            <br/><br/>
        <br/>
       </div>

    {% macro prototype(registroHomologacion) %}
    <tr >
        <td class="center">{{ form_widget(registroHomologacion.unidadOrigen.modulo,  { 'attr': { 'size': '1' }} ) }}</td>
        <td>{{ form_widget(registroHomologacion.unidadOrigen.nombre,  { 'attr': { 'size': '10' }}) }}</td>
        <td>{{ form_widget(registroHomologacion.unidadOrigen.numeroHoras,  { 'attr': { 'size': '2' }}) }}</td>
        <td>{{ form_widget(registroHomologacion.unidadOrigen.numeroCreditos,  { 'attr': { 'size': '2' }}) }}</td>
        <td>{{ form_widget(registroHomologacion.calificacion,  { 'attr': { 'size': '2' }}) }}</td>
        <td>{{ form_widget(registroHomologacion.tema,  { 'attr': { 'size': '5' }}) }}</td>
        <td>{{ form_widget(registroHomologacion.observacion,  { 'attr': { 'size': '8' }}) }}</td>
    </tr>
    
    {% endmacro %}  
    
    <div id="records_table" class="greenTableMargin">
    {{ form_errors(homologar_form) }}
            
            {% if (entity.carrera != null)%}    
                <table id="registros-table" padding="0" margin="0"   idPeticion = "{{ entity.id }}" idCarrera = "{{ entity.carrera.id }}"  idCarreraDestino="{{ entity.carreraDestino.id }}" >
            {% else %}
                 <table id="registros-table" padding="0" margin="0"  >
            {% endif %}
            
        <thead>
            <tr>
                <th colspan="8">
                </th>
            </tr>
            <tr>
                <th title="Modulo o Ciclo de la Carrera Origen">Nivel</th>
                <th title="Materia o Unidad">Materia</th>
                <th title="Horas de la Materia Origen">Horas</th>
                <th title="Creditos de la Materia Origen">Creditos</th>
                <th title="Calificacion de la Materia Origen">Calificacion</th>
                <th title="Contenidos o Temas adiconales">Contenidos</th>
                <th>Observaciones</th>
            </tr>
             </thead>
        <tbody id="registrosHomologacion-table-body"
               nivel-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').unidadOrigen.modulo, { 'attr': {'value': 'modulo_value', 'size': '1'} }) | e }}"     
               materia-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').unidadOrigen.nombre, { 'attr': {'value': 'nombre_value', 'size': '10'} }) | e }}" 
               horas-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').unidadOrigen.numeroHoras, { 'attr': {'value': 'numeroHoras_value', 'size': '2'} }) | e }}" 
               creditos-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').unidadOrigen.numeroCreditos, { 'attr': {'value': 'numeroCreditos_value', 'size': '2'} }) | e }}"
               calificacion-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').calificacion, { 'attr': {'size': '2'} }) | e }}"
               tema-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').tema, { 'attr': {'size': '30'} }) | e }}"
               observacion-data-prototype="{{ form_widget(homologar_form.registrosHomologacion.get('prototype').observacion, { 'attr': {'size': '30'} }) | e }}">
            {# iterate over each existing carrera and render its field: codigo, nombre, universidad #}
            {% for registroHomologacion in homologar_form.registrosHomologacion %}
                {{_self.prototype(registroHomologacion)}}
            {% endfor %}
        </tbody>
        <div id="progressbar" style="display:none "><img src="/img/_ajax-loader.gif" /></div> 
     
       
    </table>
    </div>
    <div id="progressbar" style="display: none"><img src="/img/ajax-loader.gif" /></div>
    <div id="controls">
        {% if entity.finalizado is null %}
            <a id="saveButtonHomologar" href="#">Guardar</a>
            {% if entity.guardada is null %}
                <a disabled="true" class="disabled" style="background:url(/img/disabled_button_background.gif) repeat-x; margin-left:5px;"  href="{{ path('peticionhomologacion_procesarHomologacion', {'id': entity.id}) }}" >Homologar</a>
            {% else %}
                <a id="homologarButton" href="{{ path('peticionhomologacion_procesarHomologacion', {'id': entity.id}) }}" >Homologar</a> 
            {% endif %}
        {% else %}
            <a href="{{ path('pdf', {'id': entity.id}) }}">Imprimir</a>
        {% endif %}
        <a href="{{ path('peticionhomologacion') }}">Cancelar</a>
    </div>
   {#{ form_rest(homologar_form) }#}
</form>     
{% endblock %}   
       
      
{% block javascripts %}
<script type="text/javascript">  
    
    
    var indexRegistro = 0;
    function crearRegistroHomologacion(row, registrosCount) {
       
     
        var registrosTableBody = jQuery('#registrosHomologacion-table-body');
        var nivelPrototype = registrosTableBody.attr('nivel-data-prototype');
        var materiaPrototype = registrosTableBody.attr('materia-data-prototype');
        var horasPrototype = registrosTableBody.attr('horas-data-prototype');
        var creditosPrototype = registrosTableBody.attr('creditos-data-prototype');
        var calificacionPrototype = registrosTableBody.attr('calificacion-data-prototype');
        var temaPrototype = registrosTableBody.attr('tema-data-prototype');
        var observacionPrototype = registrosTableBody.attr('observacion-data-prototype');

        // sustituye el "__name__" usado en el id y name del prototipo 
        
       
        nivelWidget = nivelPrototype.replace(/\$\$name\$\$/g, registrosCount);  
        nivelWidget = nivelWidget.replace('modulo_value', row.modulo);  
        materiaWidget = materiaPrototype.replace(/\$\$name\$\$/g, registrosCount);  
        materiaWidget = materiaWidget.replace('nombre_value', row.nombre);  
        horasWidget = horasPrototype.replace(/\$\$name\$\$/g, registrosCount);  
        horasWidget = horasWidget.replace('numeroHoras_value', row.numeroHoras); 
        creditosWidget = creditosPrototype.replace(/\$\$name\$\$/g, registrosCount);         
        creditosWidget = creditosWidget.replace('numeroCreditos_value', row.numeroCreditos); 
        calificacionWidget = calificacionPrototype.replace(/\$\$name\$\$/g, registrosCount);
        temaWidget = temaPrototype.replace(/\$\$name\$\$/g, registrosCount);
        observacionWidget = observacionPrototype.replace(/\$\$name\$\$/g, registrosCount);

        // crea un nuevo elemento lista y lo añade a nuestra lista
        
        var nivelTableCell = jQuery('<td class="center"></td>').html(nivelWidget);
        var materiaTableCell = jQuery('<td></td>').html(materiaWidget);
        var horasTableCell = jQuery('<td></td>').html(horasWidget);
        var creditosTableCell = jQuery('<td></td>').html(creditosWidget);  
        var calificacionTableCell = jQuery('<td></td>').html(calificacionWidget);
        var temaTableCell = jQuery('<td></td>').html(temaWidget);
        var observacionTableCell = jQuery('<td></td>').html(observacionWidget);
      

        var newRow = jQuery($('<tr>'));
        var endRow = jQuery($('</tr>'));
       
        newRow.appendTo(registrosTableBody);
        nivelTableCell.appendTo(newRow);
        materiaTableCell.appendTo(newRow);
        horasTableCell.appendTo(newRow);
        creditosTableCell.appendTo(newRow);   
        calificacionTableCell.appendTo(newRow);
        temaTableCell.appendTo(newRow);
        observacionTableCell.appendTo(newRow);
        endRow.appendTo(registrosTableBody);
        jQuery('.decimal').numeric({allow:"."})
        jQuery('.alfa1').alpha({allow:", "});
        
        jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').change(function() {
            var comboValue = jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').val();
            if (comboValue === 'numerico') {
                jQuery('.decimal').numeric({allow:"."});
            }else {
                 //alert("alfa");
               //recorreTabla();
            }
            
        });
        return false;
        
    }
    
    
    function recorreTabla(){
        var index=0;
        $('#registrosHomologacion-table-body tr').each(function() {
        var calificacion = $(this).find('td:').html();    
        alert('calificacion')
        });
        
    }
    
    
    
    jQuery('#unl_homologacionbundle_homologaciontype_mallaOrigen').change( function() {    
        
      
        $.ajax({
            type: "GET",
            url:"{{ path('_unidadesByMallaCurricularId') }}",
            dataType: 'json', 
            data: "data=" +$(this).val(),
            success: addRegistrosHomologacion
        })
    });
    
    function addRegistrosHomologacion(response) {
        if (response === null){
        } else {
            $('#registrosHomologacion-table-body').find("tr").remove();
            index = 0;
            $.each(response, function(index){
                crearRegistroHomologacion(response[index],index);
                index++;
            })
        }
    }
    
  
   
    jQuery('#saveButtonHomologar').click(function() {
    
        var comboValue = jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').val();
        
        var escalaMinNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaNumerica');
        var escalaMinAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaAlfanumerica');
        var escalaMaxNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaNumerica');
        var escalaMaxAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaAlfanumerica');
        var numeroModulo = jQuery('#unl_homologacionbundle_homologaciontype_numeroModulo');
        var mallaDestino = jQuery('#unl_homologacionbundle_homologaciontype_mallaDestino');
        var mallaOrigen = jQuery('#unl_homologacionbundle_homologaciontype_mallaOrigen');
        
        error = false;
        errorMessage = '';
        
        if(mallaOrigen.val() === '0'){
            error = true;
            errorMessage = errorMessage + 'Elija malla origen' + '\n';
        }
        
        if(mallaDestino.val() === '0'){
            error = true;
            errorMessage = errorMessage + 'Elija malla destino' + '\n';
        }
        
        if (comboValue === 'numerico') {
            if(!escalaMinNum.val() ){
                error = true;
                errorMessage = errorMessage + 'Elija escala minima' + '\n';
            }
            
            if(!escalaMaxNum.val() ){
                error = true;
                errorMessage = errorMessage + 'Elija escala maxima' + '\n';
            }
            
        }else {
            if (comboValue === 'alfanumerico'){
                if(!escalaMinAlfa.val() ){
                    error = true;
                    errorMessage = errorMessage + 'Elija escala minima' + '\n';
                }
                
                 if(!escalaMaxAlfa.val() ){
                    error = true;
                    errorMessage = errorMessage + 'Elija escala maxima' + '\n';
                }
            }
        }
        
        
        if(!numeroModulo.val() ){
            error = true;
            errorMessage = errorMessage + 'Elija numero de modulo' + '\n';
        }
         
        
        
        if(error === true){
            alert(errorMessage);
        }
        else{
            jQuery('#homologarForm').submit();
        }
        
        
    });  
    
    
       
    jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').change(function() {
        
            var comboValue = jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').val();
     
            var inputEscalaMinNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaNumerica');
            var inputEscalaMinAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaAlfanumerica');
            var inputEscalaMaxNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaNumerica');
            var inputEscalaMaxAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaAlfanumerica');
            
            if (comboValue === 'numerico') {
               inputEscalaMinNum.removeAttr('disabled');
               inputEscalaMinAlfa.attr('disabled',true);
               inputEscalaMaxNum.removeAttr('disabled');
               inputEscalaMaxAlfa.attr('disabled',true);
            } else {
                if (comboValue === 'alfanumerico'){
               inputEscalaMinAlfa.removeAttr('disabled');
               inputEscalaMinNum.attr('disabled',true);
               inputEscalaMaxAlfa.removeAttr('disabled');
               inputEscalaMaxNum.attr('disabled',true);
               }
            }
     });  
    
    
   
    $(document).ready( function() {
        var registrostable = jQuery('#registros-table');
        var idCarrera = registrostable.attr('idCarrera');
        var idPeticion = registrostable.attr('idPeticion');
        $.ajax({
            type: "GET",
            data: "data=" + idCarrera+"&idPeticion="+idPeticion+"&tipoMalla="+'ORIGEN',
            url:"{{ path('_mallasPorCarreraId') }}",
            success: function(msg){
                if (msg != ''){
                    jQuery('#unl_homologacionbundle_homologaciontype_mallaOrigen').html(msg).show();

                }
                else
                {
                    jQuery('#unl_homologacionbundle_homologaciontype_mallaOrigen').html('<em>No tiene carreras<em>');
                }
            }
        });
        
        var registrostable = jQuery('#registros-table');
        var idCarreraDestino = registrostable.attr('idCarreraDestino');
        $.ajax({
            type: "GET",
            data: "data=" + idCarreraDestino + "&idPeticion=" + idPeticion + "&tipoMalla=" +'DESTINO',
            url:"{{ path('_mallasPorCarreraId') }}",
            success: function(msg){
                if (msg != ''){
                    jQuery('#unl_homologacionbundle_homologaciontype_mallaDestino').html(msg).show();

                }
                else
                {
                    jQuery('#unl_homologacionbundle_homologaciontype_mallaDestino').html('<em>No tiene carreras<em>');
                }
            }
        });
     
        var comboValue = jQuery('#unl_homologacionbundle_homologaciontype_tipoEscala').val();
     
            var inputEscalaMinNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaNumerica');
            var inputEscalaMinAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMinimaAlfanumerica');
            var inputEscalaMaxNum = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaNumerica');
            var inputEscalaMaxAlfa = jQuery('#unl_homologacionbundle_homologaciontype_escalaMaximaAlfanumerica');
            
            if (comboValue === 'numerico') {
               inputEscalaMinNum.removeAttr('disabled');
               inputEscalaMinAlfa.attr('disabled',true);
               inputEscalaMaxNum.removeAttr('disabled');
               inputEscalaMaxAlfa.attr('disabled',true);
            } else {
                if (comboValue === 'alfanumerico'){
               inputEscalaMinAlfa.removeAttr('disabled');
               inputEscalaMinNum.attr('disabled',true);
               inputEscalaMaxAlfa.removeAttr('disabled');
               inputEscalaMaxNum.attr('disabled',true);
               }
            }
            
   });
   
 

  jQuery('#homologarButton').click(function() {
      $(document).ready( function() {
          //<img src="/img/_ajax-loader.gif"
          $.blockUI({ message: '<h1><img src="/img/_ajax-loader.gif" /><br> Por favor espere...</h1>' });
            //  $.blockUI({ message: null }); 
           // var $progressbar = $('div#progressbar').attr({'style': 'display: block'});
         
       });
    }); 
   
</script>
{% endblock %}
